<?php
/**
 * db pdo
 * @package common_lib_db
 */
load_lib('/db/pdostatement');
/**
 * db pdo
 * @author pandajingjing
 * @package common_lib_db
 */
class db_pdo extends pdo{

	/**
	 * 返回数据格式
	 * @var int
	 */
	private $_intDefaultFetchMode=PDO::FETCH_ASSOC;

	/**
	 * 构造函数
	 * @param string $p_strDSN
	 * @param string $p_strUserName
	 * @param string $p_strUserPWD
	 * @param array $p_arrDriverOption
	 */
	function __construct($p_strDSN,$p_strUserName='',$p_strUserPWD='',$p_arrDriverOption=array()){
		parent::__construct($p_strDSN,$p_strUserName,$p_strUserPWD,$p_arrDriverOption);
		$this->setAttribute(PDO::ATTR_STATEMENT_CLASS,array( 
				'db_pdostatement',
				array( 
						$this 
				) 
		));
	}

	/**
	 * 准备执行计划
	 * @param string $p_strSQL
	 * @param array $p_arrDriverOption
	 * @return object
	 */
	function prepare($p_strSQL,$p_arrDriverOption=array()){
		$objStatement=parent::prepare($p_strSQL,$p_arrDriverOption);
		if($objStatement instanceof PDOStatement){
			$objStatement->setFetchMode($this->_intDefaultFetchMode);
		}
		return $objStatement;
	}
}